package persistent.impl;

import java.util.List;

import basic.HibBaseDAO;
import model.TDimensionOption;
import persistent.dao.IDimensionOptionDAO;
import util.toolkit.GenerateUUID;

/**
 * 维度选项信息业务接口实现
 * @author 徐震霖
 * @since 2019-03-05 17:25
 */
public class DimensionOptionImpl implements IDimensionOptionDAO {

	private HibBaseDAO dao;
	
	public DimensionOptionImpl() {
		dao = new HibBaseDAO();
	}
	
	/**
	 * 添加一个选项信息（用于编辑是添加某题选项不够的情况）
	 * @param option 选项信息对象
	 * @return 成功返回true，失败返回false
	 */
	@Override
	public boolean addOption(TDimensionOption option) {
		GenerateUUID uuid = new GenerateUUID();
		option.setOptionid(uuid.getUUID());
		int row = dao.insert(option);
		if (row > 0) {
			return true;
		}
		return false;
	}

	/**
	 * 删除一个选项信息
	 * @param option 选项信息编号
	 * @return 成功返回true，失败返回false
	 */
	@Override
	public boolean deleteOption(String optionid) {
		TDimensionOption option = (TDimensionOption) dao.findById(TDimensionOption.class, optionid);
		return dao.delete(option);
	}

	/**
	 * 根据ID获得一个选项信息
	 * @param optionid 选项信息ID
	 * @return 成功返回一个选项信息对象，失败返回null
	 */
	@Override
	public TDimensionOption getTOption(String optionid) {		
		return (TDimensionOption) dao.findById(TDimensionOption.class, optionid);
	}

	/**
	 * 根据维度编号获取选项信息
	 * @param dimensionid 维度编号
	 * @return 成功返回一个选项信息对象列表，失败返回null
	 */
	@Override
	public List<TDimensionOption> getDimensionOptions(int dimensionid) {
		String hql = "from TDimensionOption where dimensionid = ?";
		Object[] para = { dimensionid };
		return dao.select(hql,para);
	}

	/**
	 * 根据条件获得选项信息对象列表
	 * @param strWhere 查询条件
	 * @return 成功返回一个选项信息对象列表，失败返回null
	 */
	@Override
	public List<TDimensionOption> getOptions(String strWhere) {
		String hql = "from TDimensionOption " + strWhere;
		return dao.select(hql);
	}

}
